# Hyper Parameters 超参数
class Hyperparameter:
    def __init__(self):
        self.TOTAL_ITEMS_SUM =5000
        #数据文件名
        self.ITEMS_FILE_RANDOM_PROFIT_ACTUAL = 'goods_data_profit_actual.pt' #实际厢车大小与货物尺寸
        self.ITEMS_FILE_RANDOM_PROFIT_ACTUAL_gen = 'goods_data_profit_actual_generalization.pt' #实际厢车大小与货物尺寸

        self.ITEMS_FILE_PROFIT = 'goods_data.pt'
        self.baseline = 5
        #self.gini_b = 0.25
        self.epsilon = 0.5 #随机扰动概率
        self.eps = 0.2 #PPO: 1-eps 1+eps
        self.lmbda = 0.95 #advantage
        self.GAMMA = 0.98  # discount factor
        self.LR = 0.001  # learning rate
        self.EPISODE = 5000 # Episode limitation
        self.STEP = 300  # Step limitation in an episode
        self.TEST = 10  # The number of experiment test every 100 episode
        # Q 训练过程参数，部分参数与Policy过程中的参数值相等
        self.EPSILON = 0.01  #贪心算法的动作取样概率
        self.MaxNewModelNum = 100


        self.d_model = 64  # Embedding Size
        self.d_ff = 128  # FeedForward dimension
        self.d_k = 4  # dimension of K(=Q), V
        self.n_layers = 3  # number of Encoder of Decoder Layer
        self.n_heads = 8  # number of heads in Multi-Head Attention
        self.c_in = 1  # dim of data input
        self.c_out = 1  # dim of data output
        self.kernel_num = 1  # number of kernel
        self.d_v = 4
        #self.batch_size = 1800 #Decoder
        self.src_len = 4 #Decoder